package com.zyh.scs.admin.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.zyh.scs.admin.api.entity.SysUser;
import com.zyh.scs.admin.api.entity.UserBill;
import com.zyh.scs.admin.api.entity.UserPsnInfo;
import com.zyh.scs.admin.base.LaoSheFanWeiResponse;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 泛微导出员工人员api接口
 *
 * @author hwh
 */
public interface UserPsnInfoService extends IService<UserPsnInfo> {


    /**
     * 发送预警并同步到用户表中  并冻结
     */
    void warmUser();

    /**
     * 满客宝用户信息同步接口
     *
     * @return
     */
    LaoSheFanWeiResponse pullManKeBaoUserInfo(List<SysUser> sysUserList);

    /**
     * 推送人员到满客宝
     *
     * @return
     */
    LaoSheFanWeiResponse pushUser();

    /**
     * 推送部门到满客宝
     *
     * @return
     */
    LaoSheFanWeiResponse pushDepartment();

    /**
     * 推送到满客宝
     *
     * @return
     */
    boolean pull();


    /**
     * 通过 部门id 推送人员到满客宝
     *
     * @return
     */
    LaoSheFanWeiResponse pushDeptId(String deptId);

    /**
     * 通过 用户id 推送人员到满客宝
     *
     * @return
     */
    LaoSheFanWeiResponse pushUser(String guid);

    /**
     * 自动推送满客宝人员和部门信息
     *
     * @return
     */
    LaoSheFanWeiResponse pushMkbDepAndUser();

    /**
     * 同步数据到用户表和预警提示中
     */
    boolean synchronous();

    /**
     * 泛微没有的用户账户中心禁用
     */
    boolean lock();

    /**
     * 每月最后一天生成账单
     */
    UserBill insertBill(Integer billType,LocalDateTime now);

    /**
     * 生成交易流水
     */
    boolean insertTransaction(LocalDateTime now);

    /**
     * 生成支付流水
     */
    boolean insertDeduction(LocalDateTime now);

    /**
     * 生成餐补流水
     */
    boolean insertCard(LocalDateTime now);

    /**
     * 生成现金流水
     */
    boolean insertCash(LocalDateTime now);

    /**
     * 生成餐卡总账余额表
     */
    boolean insertCardAll(LocalDateTime now);

    /**
     * 京东业务对账单-汇总表
     */
    boolean insertJDAccount(LocalDateTime now);

    /**
     * 业务账单-汇总表
     */
    boolean insertBusinessAccount(LocalDateTime now);

    /**
     * 满客宝充值账单  每天生成 T+1
     */
    boolean insertMKBRechargeAccount(LocalDateTime now);

    /**
     * 后台扣款账单  每天生成 T+1
     */
    boolean insertAccountPay(LocalDateTime now);

    /**
     * 后台充值账单  每天生成 T+1
     * @return
     */
    boolean insertBackend(LocalDateTime now);

    /**
     * 京东结算账单  t+1月
     * @return
     */
    boolean insertJdBalanceAccount(LocalDateTime now);

    /**
     * 满客宝京东好点消费账单 每天生成 T+1
     *
     *  1为满客宝消费账单 2 为京东消费账单 3 为好点消费账单
     * @return
     */
    boolean insertPayMKBAccount(LocalDateTime now);

    /**
     * 为京东消费账单
     * @return
     */
    boolean insertPayJDAccount(LocalDateTime now);

    /**
     * 为好点消费账单
     * @return
     */
    boolean insertPayHDAccount(LocalDateTime now);

}
